package com.bolt.admin.module.quartz.dto;

import com.bolt.support.query.conditions.domain.MatchType;
import com.bolt.support.spring.jpa.annotation.Filter;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.util.Date;

@Data
public class JobDTO {
    /**
     * * ID
     **/
    private Long id;

    /**
     * * Spring Bean名称
     **/
    @ApiModelProperty(notes = "Spring Bean名称")
    @Filter(type= MatchType.BW)
    @NotBlank
    private String beanName;

    /**
     * * cron 表达式
     **/
    @ApiModelProperty(notes = "cron 表达式")
    @Filter(type= MatchType.BW)
    @NotBlank
    private String cronExpression;

    /**
     * * 状态：1暂停、0启用
     **/
    @ApiModelProperty(notes = "状态：1暂停、0启用")
    private Boolean isPause;

    /**
     * * 任务名称
     **/
    @ApiModelProperty(notes = "任务名称")
    @Filter(type= MatchType.BW)
    @NotBlank
    private String jobName;

    /**
     * * 方法名称
     **/
    @ApiModelProperty(notes = "方法名称")
    @Filter(type= MatchType.BW)
    @NotBlank
    private String methodName;

    /**
     * * 参数
     **/
    @ApiModelProperty(notes = "参数")
    private String params;

    /**
     * * 备注
     **/
    @ApiModelProperty(notes = "备注")
    private String description;

    /**
     * * 负责人
     **/
    @ApiModelProperty(notes = "负责人")
    private String personInCharge;

    /**
     * * 报警邮箱
     **/
    @ApiModelProperty(notes = "报警邮箱")
    private String email;

    /**
     * * 子任务ID
     **/
    @ApiModelProperty(notes = "子任务ID")
    private String subTask;

    /**
     * * 任务失败后是否暂停
     **/
    @ApiModelProperty(notes = "任务失败后是否暂停")
    private Boolean pauseAfterFailure;

    /**
     * * 创建者
     **/
    @ApiModelProperty(notes = "创建者")
    private String createBy;

    /**
     * * 更新者
     **/
    @ApiModelProperty(notes = "更新者")
    private String updateBy;

    /**
     * * 创建日期
     **/
    @ApiModelProperty(notes = "创建日期")
    @JsonFormat(pattern = "yyyy-MM-dd hh:ss:mm",timezone = "GMT+8")
    private Date createTime;

    /**
     * * 更新时间
     **/
    @ApiModelProperty(notes = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd hh:ss:mm",timezone = "GMT+8")
    private Date updateTime;

    private Integer versionNO;

}